Add NuGet package metadata and assets for Microsoft.DataApiBuilder.Mcp#3665
Add NuGet package metadata and assets for Microsoft.DataApiBuilder.Mcp#3665anushakolan wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
This PR makes the Azure.DataApiBuilder.Mcp project packable as a standalone NuGet package (Microsoft.DataApiBuilder.Mcp) by adding NuGet authoring metadata and wiring in the required package assets (README/icon/license, plus conditional NOTICE support), enabling partner teams to consume MCP functionality without hosting the full DAB engine.
Changes:
- Added NuGet package metadata and deterministic CI packing settings to
Azure.DataApiBuilder.Mcp.csproj. - Added package asset packing for README, icon, LICENSE, and a conditional NOTICE file.
- Introduced a package-specific README under
nuget/nuget_mcp/describing purpose and usage.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| src/Azure.DataApiBuilder.Mcp/Azure.DataApiBuilder.Mcp.csproj | Enables NuGet packing and adds package metadata + packaged assets for the new Microsoft.DataApiBuilder.Mcp SDK. |
| nuget/nuget_mcp/README.md | Adds a package README tailored to the MCP library’s intended usage and scope. |
RubenCerna2079
left a comment
There was a problem hiding this comment.
LGTM! Approved with suggestions.
souvikghosh04
left a comment
There was a problem hiding this comment.
Approving with a comment and due to urgency. Assuming this is well tested.
| <None Include="..\..\nuget\nuget_mcp\README.md" Pack="true" PackagePath="\" /> | ||
| <None Include="..\..\nuget\nuget_icon.png" Pack="true" PackagePath="\" /> | ||
| <None Include="..\..\LICENSE.txt" Pack="true" PackagePath="\" /> | ||
| <None Include="..\..\nuget_mcp\NOTICE.txt" Pack="true" PackagePath="\" Condition="Exists('..\..\nuget_mcp\NOTICE.txt')" /> |
There was a problem hiding this comment.
NOTICE.txt path seems wrong.
The csproj includes: <None Include="..\..\nuget_mcp\NOTICE.txt" Pack="true" PackagePath="\" Condition="Exists('..\..\nuget_mcp\NOTICE.txt')" />
But the README lives at nuget/nuget_mcp/README.md, so the NOTICE path should be ....\nuget\nuget_mcp\NOTICE.txt (note the nuget prefix). Compare with the Core csproj at Azure.DataApiBuilder.Core.csproj:74 which uses ....\nuget_core\NOTICE.txt — that's also missing the nuget prefix, so either both are wrong or there's a top-level nuget_core/ and nuget_mcp/ directory at repo root used by the build pipeline. Worth verifying the intended location — the Condition="Exists(...)" will silently skip it if wrong, meaning the package ships without a NOTICE even when one exists.
Why make this change?
Closes : #3658
DAB currently publishes two NuGet packages:
Microsoft.DataApiBuilder— full engineMicrosoft.DataApiBuilder.Core— modular core libraryPartner teams need to consume MCP functionality directly from a .NET application without hosting the full DAB engine. There was no dedicated package for this.
This change introduces
Microsoft.DataApiBuilder.Mcpso teams can embed and host DAB MCP endpoints in their own ASP.NET Core applications, consuming it as an SDK dependency.Current scope is internal Azure Artifacts feed only. NuGet.org publishing is not included in this change.
What is this change?
1. Updated
Azure.DataApiBuilder.Mcp.csprojAdded full NuGet package authoring metadata:
PackageId,Title,Authors,CopyrightDescription,PackageTags,AssemblyNamePackageLicenseFile,PackageIcon,PackageReadmeFilePackageProjectUrl,RepositoryTypeEmbedUntrackedSources,PublishRepositoryUrlfor Source Link supportContinuousIntegrationBuildconditional onTF_BUILDfor deterministic pipeline buildsPackageOutputPathset to./nupkg2. Added
nuget/nuget_mcp/README.mdPackage-specific readme for
Microsoft.DataApiBuilder.Mcpfollowing the same structure asnuget/nuget_core/README.md, including:Design reference
docs/design/mcp-nuget-package-creation.md
How was this tested?
Local pack validation
Pack succeeded and produced
Microsoft.DataApiBuilder.Mcp.2.0.0.nupkg.Package contents verified
Opened nupkg as archive and confirmed:
lib/net8.0/Microsoft.DataApiBuilder.Mcp.dll— correct assembly nameREADME.md— fromnuget/nuget_mcp/README.mdLICENSE.txt— from repo rootnuget_icon.png— fromnuget/nuget_icon.pngMicrosoft.DataApiBuilder.Mcp.nuspec— generated with all metadataNuspec metadata verified
Confirmed all required fields populated:
Dependency graph verified
Confirmed correct transitive dependencies declared in nuspec for
net8.0:Microsoft.DataApiBuilder.CoreModelContextProtocolModelContextProtocol.AspNetCore